کلاس : Class
کلاس مفهومی شبیه نقشه یک ساختمان دارد که خود به تنهایی مثلا قابل سکونت نیست بلکه بایستی یک نمونه ( ساختمان ) از روی آن ساخت و از آن نمونه ساخته شده استفاده کرد.یعنی در واقع کلاس یک Concept از شیء ایست که می خواهیم داشته باشیم .
یک کلاس دارای اعضائی است که این اعضاء به دو دسته تقسیم می شوند 1 . داده ها و 2 . عملکردها .
داده ها شامل فیلدها ( Fields) و خصوصیات ( properties ) و عملکردها نیز شامل رویدادها ( Events ) و متدها ( methods ) می باشند.
کلاس { فیلدها و خصوصیات - رویدادها و عملکردها }
یک کلاس با استفاده از کلید واژه class و به دنبال آن نامی برای کلاس و دو علامت { } تعریف می شود .
در مثال زیر کلاسی به نام MyClass تعریف شده که هیچ عضوی ندارد و در واقع هیچ کاری هم انجام نمی دهد.
class MyClass
{
}
همانطور که در بالا بیان شد کلاس دارای اعضایی است . قبل از اضافه کردن اعضاء درون کلاس به این نکته توجه داشته باشید که هر کلاس برای اجرا شدن حتماً به یک سازنده ( constructor) احتیاج دارد وگرنه کلاس ما بدون انجام هیچ واکنشی بدون استفاده باقی می ماند. یک سازنده بوسیله تعیین یک سطح دسترسی و نامی دقیقا مشابه نام کلاس و علامت () تعریف می گردد که می تواند دارای پارامتر و یا بدون پارامتر باشد.( در مثال زیر سازنده کلاس MyClass هیچ پارامتری دریافت نمی کند. ضمنا این Constructor بطور اتومتیک اجرا می شود )
نکته : سازنده کلاس می تواند پس از ساخت یک نمونه از کلاس نیز بطور دستی اجرا گردد که در ادامه به آن اشاره خواهد شد .
class MyClass
{
public MyClass()
{
}
}
دقت کنید : همانطور که در بالا بیان شد برای دسترسی به اعضاء یک کلاس و استفاده از عملکردهای آن می بایست ابتدا یک نمونه یا شیء( Object ) از آن کلاس را ساخت و سپس به کمک آن شیء به اعضاء کلاس دسترسی پیدا کرد.
using System;
namespace ClassTest
{
class Program
{
class MyClass
{
int nonStaticVariable;
static int staticVariable;
public void SetVars(int v1, int v2)
{
nonStaticVariable = v1;
staticVariable = v2;
}
public void Display()
{
Console.WriteLine("nonStaticVariable = {0} staticVariable = {1}", nonStaticVariable, staticVariable);
Console.ReadKey();
}
}
static void Main()
{
MyClass d1 = new MyClass();
MyClass d2 = new MyClass();
d1.SetVars(2, 4);
d1.Display();
d2.SetVars(15, 17);
d2.Display(); } } }
که پس از اجرا ابتدا شیء d1 و سپس با زدن اینتر شیء d2 اجرا می شوند. خروجی برنامه بصورت زیر می باشد.
nonStaticVariable = 2 staticVariable = 4
nonStaticVariable = 15 staticVariable = 17